hadoop - HDFS LeaseExpiredException
全部标签 我试图找出在简单的hadoopwordcount示例中哪些步骤花费了多少时间。在此示例中,使用了3个映射和1个reducer,每个映射生成约7MB的随机数据。我有一个通过1Gb交换机连接的集群。当我查看作业详细信息时,意识到在所有maptask完成后改组需要大约7秒,这比传输这么小的数据的预期要多。这背后的原因可能是什么?谢谢 最佳答案 Hadoop使用心跳与节点通信。默认情况下,hadoop使用最小心跳间隔等于3秒。因此,hadoop会在两次心跳(大约6秒)内完成您的任务。更多详情:https://issues.apache.or
要传输文件到数据节点,hadoop使用什么协议(protocol)?SSHorhttporhttps 最佳答案 我想TCP就是您想要的答案。服务器是DataXceiverServer客户是DFSClient.基本上,他们使用JavaSocketAPI。 关于hadoop-数据节点中的文件传输-hadoop,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/19899083/
我已经配置了Hadoop集群。我有两台机器MA和MB当我使用以下代码运行mapreduce程序时hadoopjar/HDP/hadoop-1.2.0.1.3.0.0-0380/contrib/streaming/hadoop-streaming-1.2.0.1.3.0.0-0380.jar-mapper"pythonC:\Python33\mapper.py"-reducer"pythonC:\Python33\redu.py"-input"/user/XXXX/input/input.txt"-output"/user/XXXX/output/out20131112_09"where
当尝试在hadoop中格式化我的namenode时,运行此命令$HADOOP_HOME/bin/hdfsnamenode-format后出现以下异常。2013-11-1213:49:48,580FATALnamenode.NameNode(NameNode.java:main(808))-Exceptioninnamenodejoinjava.io.IOException:Cannotcreatedirectory/test/dfs/name/current此问题的修复,如thislink所示和thislink,是用sudo运行命令。我在这台机器上没有root权限,也无法访问root。
我正在寻找hadoop集群的系统测试框架。受支持的用例应包括HDFS的系统测试、mapreduce作业和hive查询。我从apache中找到了一个名为herriot的,但我不确定它是否仍在维护中。你们知道任何现有框架吗? 最佳答案 看看1和2用于对集群进行基准测试。它有测试的代码和数据。将它们自动化应该不是什么难事。 关于hadoop-hadoop集群的系统测试自动化框架,我们在StackOverflow上找到一个类似的问题: https://stackove
我想创建一个由三个Hadoop作业组成的链,其中一个作业的输出作为输入提供给第二个作业,依此类推。我想在不使用Oozie的情况下执行此操作。我已经编写了以下代码来实现它:-publicclassTfIdf{publicstaticvoidmain(Stringargs[])throwsIOException,InterruptedException,ClassNotFoundException{TfIdftfIdf=newTfIdf();tfIdf.runWordCount();tfIdf.runDocWordCount();tfIdf.TFIDFComputation();}publ
假设HDFS的复制因子是3,那么对于一个map任务,有三个节点保存它的输入数据。map任务是从所有3个节点并行读取还是随机选择其中一个?我做了一些实验,我将其中一个数据节点设置为具有非常低的带宽并获得一些非常慢的maptask,所以我猜maptask不会并行读取所有可用的数据节点,我是对的?感谢您的帮助! 最佳答案 如果您的复制因子是3,则集群中有三个节点保存特定映射任务的输入数据。JobTracker只会将map任务分配给这三个节点中的一个,因此它只会从该节点读取数据。Hadoop具有称为推测执行的功能。在推测执行中,如果JobT
如果我的数据集包含这样的行199.72.81.55--[01/Jul/1995:00:00:01-0400]"GET/history/apollo/HTTP/1.0"2006245并且我正在使用hadoop运行mapreduce作业,如何获取每行中的最后一个元素?我已经尝试了所有明显的答案,例如StringlastWord=test.substring(test.lastIndexOf("")+1);但这给了我-性格。我试过根据空格拆分它,并获取最后一个元素,但最后一个字符仍然是-。难道我不指望数据会一行一行的传送给我吗?换句话说,我难道不能期望abcd\nefgh\n形式的文件逐行传
我正在尝试在我的Ubuntu12.04LTS(32位)、Java1.7.0_25、Python2.7.3中配置presto。presto不能在32位系统中工作吗?请帮我解决这个问题。我收到以下错误。2013-11-14T14:37:54.165+0530DEBUGmaincom.facebook.presto.hive.RebindSafeMBeanServerio.airlift.node:name=NodeInfoalreadyboundtoio.airlift.node.NodeInfo[io.airlift.node:name=NodeInfo]2013-11-14T14:37
mapreduce作业中的中间键值对在被洗牌到将运行reduce任务的tasktracker节点之前被写入mapred.local.dir。我知道HFDS已优化以写入大数据block,因此与常规文件系统相比,可最大限度地减少硬盘的寻道时间。现在我很好奇hadoop是否也针对将中间kev-value对流式传输到本地文件系统进行了优化?我问这个是因为我的应用程序只有很少的输入数据,但是有大量的中间数据和中等大小的输出数据。hadoop在我的案例中是有益的还是我应该考虑一个不同的框架?(请注意,我的软件与WordCount密切相关,但我发出所有子字符串而不是所有单词)非常感谢您的帮助!EDI